home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Source Code / C ++ / Frameworks / SCAPI 0.85 / Spunk Cross API 1.0 / MacSCAPI / Headers / SCAPIDrawingArea.h < prev    next >
Encoding:
Text File  |  1997-06-16  |  4.3 KB  |  164 lines  |  [TEXT/CWIE]

  1. // ===========================================================================
  2. //    SCAPIDrawingArea.h            ©1997 Spunk Cross         All rights reserved.
  3. // ===========================================================================
  4.  
  5. #ifndef SCAPIDRAWINGAREA_H
  6. #define SCAPIDRAWINGAREA_H
  7.  
  8. #include "SCAPICommonIncludes.h"
  9. #include "SCAPIWindow.h"
  10. #include "SCAPIGroupBox.h"
  11. #include <LMouseTracker.h>
  12.  
  13.  
  14. // ---------------------------------------------------------------------------
  15. //        Defines
  16. // ---------------------------------------------------------------------------
  17.  
  18. #define SCAPIDrawingArea_default_originx        0
  19. #define SCAPIDrawingArea_default_originy        0
  20. #define SCAPIDrawingArea_default_width            100
  21. #define SCAPIDrawingArea_default_height            100
  22.  
  23. #define    SCAPIDrawingArea_LeftMouseButton        0
  24. #define    SCAPIDrawingArea_MiddleMouseButton        1
  25. #define    SCAPIDrawingArea_RightMouseButton        2
  26.  
  27.  
  28. // ---------------------------------------------------------------------------
  29. //        SCAPIDrawingArea Class
  30. // ---------------------------------------------------------------------------
  31.  
  32. class SCAPIDrawingArea : public LView, public LMouseTracker
  33. {
  34.  
  35.     // ===========================================================
  36.     // === Spunk Cross API, these are the routines you can use ===
  37.     // ===========================================================
  38.     
  39.         // Constructor - Destructor
  40.         // ------------------------
  41.         
  42.     public:
  43.     
  44.         SCAPIDrawingArea(    SCAPIWindow*    inWindowP,
  45.                             int                inOriginx = SCAPIDrawingArea_default_originx,
  46.                             int             inOriginy = SCAPIDrawingArea_default_originy,
  47.                             int                inWidth = SCAPIDrawingArea_default_width,
  48.                             int                inHeight = SCAPIDrawingArea_default_height        );
  49.         
  50.         ~SCAPIDrawingArea();
  51.         
  52.         
  53.         // Member functions
  54.         // ----------------
  55.         
  56.     protected:
  57.     
  58.         virtual void    DrawEvent();
  59.         virtual void    LeftMouseButtonDownEvent(int    x, int    y);
  60.         virtual void    MiddleMouseButtonDownEvent(int    x, int    y);
  61.         virtual void    RightMouseButtonDownEvent(int    x, int    y);
  62.         virtual void    LeftMouseButtonUpEvent(int    x, int    y);
  63.         virtual void    MiddleMouseButtonUpEvent(int    x, int    y);
  64.         virtual void    RightMouseButtonUpEvent(int    x, int    y);
  65.         virtual void    MouseMove(int    x, int    y);
  66.         virtual void    MouseEnterArea();
  67.         virtual void    MouseLeaveArea();
  68.         
  69.         
  70.     public:
  71.     
  72.         void    SetBackgroundColor(    float    r, 
  73.                                     float    g, 
  74.                                     float    b    );
  75.                                     
  76.         void    SetDrawingColor(    float    r, 
  77.                                     float    g, 
  78.                                     float    b    );
  79.                                     
  80.         void    Clear();
  81.         
  82.         void    ClearArea(    int        inOriginx,
  83.                             int     inOriginy,
  84.                             int        inWidth,
  85.                             int        inHeight    );
  86.                             
  87.         void    DrawPoint(    int        inPointx,
  88.                             int     inPointy    );
  89.                             
  90.         void    DrawLine(    int        inStartPointx,
  91.                             int     inStartPointy,
  92.                             int        inEndPointx,
  93.                             int        inEndPointy        );
  94.         
  95.         void    DrawRectangle(    int        inOriginx,
  96.                                 int        inOriginy,
  97.                                 int        inWidth,
  98.                                 int        inHeight    );
  99.                                 
  100.         void    DrawFilledRectangle(    int        inOriginx,
  101.                                         int        inOriginy,
  102.                                         int        inWidth,
  103.                                         int        inHeight    );
  104.                                         
  105.         void    DrawOval(    int        inOriginx,
  106.                             int        inOriginy,
  107.                             int        inWidth,
  108.                             int        inHeight    );
  109.                                 
  110.         void    DrawFilledOval(    int        inOriginx,
  111.                                 int        inOriginy,
  112.                                 int        inWidth,
  113.                                 int        inHeight    );
  114.         
  115.         
  116.     // =================================
  117.     // === Internal part, do not use ===
  118.     // =================================                    
  119.         
  120.         // Member variables
  121.         // ----------------
  122.         
  123.     private:
  124.         
  125.         SViewInfo            mSViewInfo;
  126.         SPaneInfo            mSPaneInfo;
  127.         SCAPIGroupBox*        mBorderP;
  128.         int                    mLastButtonPressed;
  129.         LGWorld*            mGWorld;
  130.         int                    mOldMousePosX;
  131.         int                    mOldMousePosY;
  132.         float                mDrawingRed;
  133.         float                mDrawingGreen;
  134.         float                mDrawingBlue;
  135.         float                mBackgroundRed;
  136.         float                mBackgroundGreen;
  137.         float                mBackgroundBlue;
  138.         
  139.         // Member functions
  140.         // ----------------
  141.         
  142.     private:
  143.     
  144.         SPaneInfo        MakeSPaneInfo(    SCAPIWindow*    inWindowP,
  145.                                         int                inOriginx,
  146.                                         int                inOriginy,
  147.                                         int                inWidth,
  148.                                         int                inHeight    );
  149.                                         
  150.         SViewInfo        MakeSViewInfo();
  151.         
  152.         virtual void    ClickSelf(const SMouseDownEvent&    inMouseDown);
  153.         virtual void    EventMouseUp(const EventRecord    &inMacEvent);
  154.         virtual void    DrawSelf();
  155.         virtual void    MouseEnter(    Point                inPortPt,
  156.                                     const EventRecord    &inMacEvent    );
  157.         virtual void    MouseLeave();
  158.         virtual void    MouseWithin(Point                inPortPt,
  159.                                     const EventRecord    &inMacEvent);
  160.         void            SetInternalBackgroundColor();    
  161.         void            SetInternalDrawingColor();
  162. };
  163.  
  164. #endif